package com.lfb.network.tcp;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerThread implements Runnable {
    /**
     * 服务器主机socket通信所监听的端口号
     *
     * 客户端与服务器端的端口号需要保持一致
     */
    private int port;

    public ServerThread(int port) {
        this.port = port;
    }

    @Override
    public void run() {
        try {
            //创建一个server socket对象（饭店的角色）
            ServerSocket serverSocket = new ServerSocket(port);
            //服务器一般一直处于运行的状态，用于随时响应客户端的请求
            while (true){
                //创建客户端建立连接的socket对象（服务员的角色）
                Socket socket0 = serverSocket.accept();

                //当前服务器端创建的socket0对象，会与客户端socket进行通信
                /*****************服务器端使用输入流接受客户端发送信息*************/
                BufferedReader br = new BufferedReader(new InputStreamReader(socket0.getInputStream(),"UTF-8"));
                //读入客户端信息
                String strM_c = br.readLine();
                //输出信息
                System.out.println("服务器端接受的信息为;" + strM_c + "来自于IP" + socket0.getInetAddress().getHostAddress());
                //关闭资源
                //br.close();

            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
